[INFO] cloning repository https://github.com/jlucaso1/whatsapp-rust-bridge
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jlucaso1/whatsapp-rust-bridge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjlucaso1%2Fwhatsapp-rust-bridge", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjlucaso1%2Fwhatsapp-rust-bridge'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 254525ec4a5ef4bd347594c4c5cc41c319a6ba24
[INFO] fixing jlucaso1/whatsapp-rust-bridge against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjlucaso1%2Fwhatsapp-rust-bridge" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/jlucaso1/whatsapp-rust-bridge
[INFO] finished tweaking git repo https://github.com/jlucaso1/whatsapp-rust-bridge
[INFO] tweaked toml for git repo https://github.com/jlucaso1/whatsapp-rust-bridge written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jlucaso1/whatsapp-rust-bridge on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jlucaso1/whatsapp-rust-bridge already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/jlucaso1/whatsapp-rust.git`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded prost v0.14.3
[INFO] [stderr]   Downloaded prost-types v0.14.3
[INFO] [stderr]   Downloaded prost-build v0.14.3
[INFO] [stderr]   Downloaded symphonia-utils-xiph v0.5.5
[INFO] [stderr]   Downloaded byteorder-lite v0.1.0
[INFO] [stderr]   Downloaded zeroize_derive v1.4.3
[INFO] [stderr]   Downloaded siphasher v1.0.2
[INFO] [stderr]   Downloaded symphonia v0.5.5
[INFO] [stderr]   Downloaded quick-error v2.0.1
[INFO] [stderr]   Downloaded prost-derive v0.14.3
[INFO] [stderr]   Downloaded rand_core v0.10.0
[INFO] [stderr]   Downloaded serde-wasm-bindgen v0.6.5
[INFO] [stderr]   Downloaded symphonia-format-ogg v0.5.5
[INFO] [stderr]   Downloaded zune-core v0.5.1
[INFO] [stderr]   Downloaded tsify-next v0.5.6
[INFO] [stderr]   Downloaded fdeflate v0.3.7
[INFO] [stderr]   Downloaded serde_derive_internals v0.29.1
[INFO] [stderr]   Downloaded img-parts v0.4.0
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.5
[INFO] [stderr]   Downloaded symphonia-codec-aac v0.5.5
[INFO] [stderr]   Downloaded serde_bytes v0.11.19
[INFO] [stderr]   Downloaded tsify-next-macros v0.5.6
[INFO] [stderr]   Downloaded symphonia-format-isomp4 v0.5.5
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]   Downloaded image-webp v0.2.4
[INFO] [stderr]   Downloaded flate2 v1.1.9
[INFO] [stderr]   Downloaded zune-jpeg v0.5.12
[INFO] [stderr]   Downloaded uuid v1.20.0
[INFO] [stderr]   Downloaded symphonia-core v0.5.5
[INFO] [stderr]   Downloaded png v0.18.0
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.37
[INFO] [stderr]   Downloaded moxcms v0.7.11
[INFO] [stderr]   Downloaded zlib-rs v0.6.0
[INFO] [stderr]   Downloaded zerocopy v0.8.37
[INFO] [stderr]   Downloaded image v0.25.9
[INFO] [stderr]   Downloaded regex-syntax v0.8.9
[INFO] [stderr]   Downloaded regex-automata v0.4.14
[INFO] [stderr]   Downloaded petgraph v0.8.3
[INFO] [stderr]   Downloaded pxfm v0.1.27
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca
[INFO] running `Command { std: "docker" "start" "3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.108
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]     Checking cpufeatures v0.2.17
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling zerocopy v0.8.37
[INFO] [stderr]    Compiling bumpalo v3.19.1
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling wasm-bindgen v0.2.108
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling phf_codegen v0.13.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]     Checking zlib-rs v0.6.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking block-padding v0.3.3
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]     Checking phf v0.13.1
[INFO] [stderr]     Checking uuid v1.20.0
[INFO] [stderr]     Checking arrayref v0.3.9
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking cbc v0.1.2
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking futures-core v0.3.31
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]     Checking rand_core v0.10.0
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]     Checking base64 v0.22.1
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.108
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tsify-next-macros v0.5.6
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling prost-types v0.14.3
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.108
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]    Compiling prost-build v0.14.3
[INFO] [stderr]     Checking js-sys v0.3.85
[INFO] [stderr]    Compiling waproto v0.2.0 (https://github.com/jlucaso1/whatsapp-rust.git?branch=main#e2fb8bf0)
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking serde-big-array v0.5.1
[INFO] [stderr]    Compiling wacore-binary v0.2.0 (https://github.com/jlucaso1/whatsapp-rust.git?branch=main#e2fb8bf0)
[INFO] [stderr]     Checking serde-wasm-bindgen v0.6.5
[INFO] [stderr]     Checking web-sys v0.3.85
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.58
[INFO] [stderr]     Checking tsify-next v0.5.6
[INFO] [stderr]     Checking wacore-libsignal v0.2.0 (https://github.com/jlucaso1/whatsapp-rust.git?branch=main#e2fb8bf0)
[INFO] [stderr]     Checking wacore-appstate v0.2.0 (https://github.com/jlucaso1/whatsapp-rust.git?branch=main#e2fb8bf0)
[INFO] [stderr]     Checking wacore-noise v0.2.0 (https://github.com/jlucaso1/whatsapp-rust.git?branch=main#e2fb8bf0)
[INFO] [stderr]     Checking whatsapp-rust-bridge v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0053]: method `load_session` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:743:1
[INFO] [stdout]     |
[INFO] [stdout] 743 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>> + Send`, found trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `store_session` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:743:1
[INFO] [stdout]     |
[INFO] [stdout] 743 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<(), SignalProtocolError>> + Send`, found trait `Future<Output = Result<(), SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 wacore_libsignal::protocol::SessionRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 wacore_libsignal::protocol::SessionRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `load_session` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:743:1
[INFO] [stdout]     |
[INFO] [stdout] 743 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>> + Send`, found trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SessionRecord>, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `store_session` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:743:1
[INFO] [stdout]     |
[INFO] [stdout] 743 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<(), SignalProtocolError>> + Send`, found trait `Future<Output = Result<(), SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 wacore_libsignal::protocol::SessionRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 wacore_libsignal::protocol::SessionRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_identity_key_pair` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<IdentityKeyPair, SignalProtocolError>> + Send`, found trait `Future<Output = Result<IdentityKeyPair, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<IdentityKeyPair, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<IdentityKeyPair, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_local_registration_id` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<u32, SignalProtocolError>> + Send`, found trait `Future<Output = Result<u32, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<u32, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<u32, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `is_trusted_identity` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<bool, SignalProtocolError>> + Send`, found trait `Future<Output = Result<bool, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey, Direction) -> Pin<Box<(dyn Future<Output = Result<bool, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey, Direction) -> Pin<Box<(dyn Future<Output = Result<bool, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `save_identity` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<IdentityChange, SignalProtocolError>> + Send`, found trait `Future<Output = Result<IdentityChange, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey) -> Pin<Box<(dyn Future<Output = Result<IdentityChange, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey) -> Pin<Box<(dyn Future<Output = Result<IdentityChange, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_identity` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>> + Send`, found trait `Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:744:23
[INFO] [stdout]     |
[INFO] [stdout] 744 | impl SessionStore for JsStorageAdapter {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore`
[INFO] [stdout]     = note: `SessionStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_identity_key_pair` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<IdentityKeyPair, SignalProtocolError>> + Send`, found trait `Future<Output = Result<IdentityKeyPair, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<IdentityKeyPair, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<IdentityKeyPair, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_local_registration_id` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<u32, SignalProtocolError>> + Send`, found trait `Future<Output = Result<u32, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<u32, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter) -> Pin<Box<(dyn Future<Output = Result<u32, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `is_trusted_identity` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<bool, SignalProtocolError>> + Send`, found trait `Future<Output = Result<bool, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey, Direction) -> Pin<Box<(dyn Future<Output = Result<bool, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey, Direction) -> Pin<Box<(dyn Future<Output = Result<bool, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `save_identity` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<IdentityChange, SignalProtocolError>> + Send`, found trait `Future<Output = Result<IdentityChange, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey) -> Pin<Box<(dyn Future<Output = Result<IdentityChange, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress, &'life2 IdentityKey) -> Pin<Box<(dyn Future<Output = Result<IdentityChange, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `get_identity` has an incompatible type for trait
[INFO] [stdout]    --> src/storage_adapter.rs:820:1
[INFO] [stdout]     |
[INFO] [stdout] 820 | #[async_trait(?Send)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>> + Send`, found trait `Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                found signature `fn(&'life0 JsStorageAdapter, &'life1 wacore_libsignal::core::ProtocolAddress) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<IdentityKey>, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:821:27
[INFO] [stdout]     |
[INFO] [stdout] 821 | impl IdentityKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `IdentityKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore`
[INFO] [stdout]     = note: `IdentityKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:947:22
[INFO] [stdout]     |
[INFO] [stdout] 947 | impl PreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::PreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:95:24
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub trait PreKeyStore: ThreadSafe {
[INFO] [stdout]     |                        ^^^^^^^^^^ required by this bound in `PreKeyStore`
[INFO] [stdout]     = note: `PreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `load_sender_key` has an incompatible type for trait
[INFO] [stdout]     --> src/storage_adapter.rs:1008:1
[INFO] [stdout]      |
[INFO] [stdout] 1008 | #[async_trait(?Send)]
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>> + Send`, found trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                 found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `store_sender_key` has an incompatible type for trait
[INFO] [stdout]     --> src/storage_adapter.rs:1008:1
[INFO] [stdout]      |
[INFO] [stdout] 1008 | #[async_trait(?Send)]
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<(), SignalProtocolError>> + Send`, found trait `Future<Output = Result<(), SignalProtocolError>>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName, &'life2 wacore_libsignal::protocol::SenderKeyRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                 found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName, &'life2 wacore_libsignal::protocol::SenderKeyRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:982:28
[INFO] [stdout]     |
[INFO] [stdout] 982 | impl SignedPreKeyStore for JsStorageAdapter {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SignedPreKeyStore`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:109:30
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub trait SignedPreKeyStore: ThreadSafe {
[INFO] [stdout]     |                              ^^^^^^^^^^ required by this bound in `SignedPreKeyStore`
[INFO] [stdout]     = note: `SignedPreKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]     = help: the following type implements the trait:
[INFO] [stdout]               T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `load_sender_key` has an incompatible type for trait
[INFO] [stdout]     --> src/storage_adapter.rs:1008:1
[INFO] [stdout]      |
[INFO] [stdout] 1008 | #[async_trait(?Send)]
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>> + Send`, found trait `Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                 found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName) -> Pin<Box<(dyn Future<Output = Result<std::option::Option<wacore_libsignal::protocol::SenderKeyRecord>, SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0053]: method `store_sender_key` has an incompatible type for trait
[INFO] [stdout]     --> src/storage_adapter.rs:1008:1
[INFO] [stdout]      |
[INFO] [stdout] 1008 | #[async_trait(?Send)]
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^ expected trait `Future<Output = Result<(), SignalProtocolError>> + Send`, found trait `Future<Output = Result<(), SignalProtocolError>>`
[INFO] [stdout]      |
[INFO] [stdout]      = note: expected signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName, &'life2 wacore_libsignal::protocol::SenderKeyRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + Send + 'async_trait)>>`
[INFO] [stdout]                 found signature `fn(&'life0 mut JsStorageAdapter, &'life1 wacore_libsignal::protocol::SenderKeyName, &'life2 wacore_libsignal::protocol::SenderKeyRecord) -> Pin<Box<(dyn Future<Output = Result<(), SignalProtocolError>> + 'async_trait)>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]      |
[INFO] [stdout]  153 | pub struct JsValue {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]     --> src/storage_adapter.rs:58:14
[INFO] [stdout]      |
[INFO] [stdout]   58 |     pub type SignalStorage;
[INFO] [stdout]      |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]      |
[INFO] [stdout]  153 | pub struct JsValue {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]     --> src/storage_adapter.rs:58:14
[INFO] [stdout]      |
[INFO] [stdout]   58 |     pub type SignalStorage;
[INFO] [stdout]      |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]      |
[INFO] [stdout]  153 | pub struct JsValue {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]     --> src/storage_adapter.rs:58:14
[INFO] [stdout]      |
[INFO] [stdout]   58 |     pub type SignalStorage;
[INFO] [stdout]      |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:1009:25
[INFO] [stdout]      |
[INFO] [stdout] 1009 | impl SenderKeyStore for JsStorageAdapter {
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]     --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]      |
[INFO] [stdout]  153 | pub struct JsValue {
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]     --> src/storage_adapter.rs:58:14
[INFO] [stdout]      |
[INFO] [stdout]   58 |     pub type SignalStorage;
[INFO] [stdout]      |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]     --> src/storage_adapter.rs:112:12
[INFO] [stdout]      |
[INFO] [stdout]  112 | pub struct JsStorageAdapter {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `SenderKeyStore`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:148:27
[INFO] [stdout]      |
[INFO] [stdout]  148 | pub trait SenderKeyStore: ThreadSafe {
[INFO] [stdout]      |                           ^^^^^^^^^^ required by this bound in `SenderKeyStore`
[INFO] [stdout]      = note: `SenderKeyStore` is a "sealed trait", because to implement it you also need to implement `wacore_libsignal::protocol::storage::traits::ThreadSafe`, which is not accessible; this is usually done to force you to use one of the provided types that already implement it
[INFO] [stdout]      = help: the following type implements the trait:
[INFO] [stdout]                T
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/session_cipher.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let record = SessionStore::load_session(&self.storage_adapter, &self.remote_address.0)
[INFO] [stdout]     |                      -------------------------- ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `wacore_libsignal::protocol::SessionStore::load_session`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:133:25
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub trait SessionStore: ThreadSafe {
[INFO] [stdout]     |                         ^^^^^^^^^^ required by this bound in `SessionStore::load_session`
[INFO] [stdout] 134 |     /// Look up the session corresponding to `address`.
[INFO] [stdout] 135 |     async fn load_session(&self, address: &ProtocolAddress) -> Result<Option<SessionRecord>>;
[INFO] [stdout]     |              ------------ required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let local_identity = self.get_identity_key_pair().await?;
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_identity_key_pair`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_identity_key_pair`
[INFO] [stdout]  58 |     /// Return the single specific identity the store is assumed to represent, with private key.
[INFO] [stdout]  59 |     async fn get_identity_key_pair(&self) -> Result<IdentityKeyPair>;
[INFO] [stdout]     |              --------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<IdentityKeyPair>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<u32>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<bool>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `Rc<RefCell<Option<(String, String, String)>>>` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be sent between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `*mut u8` cannot be shared between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:386:33
[INFO] [stdout]     |
[INFO] [stdout] 386 |         let local_reg_id = self.get_local_registration_id().await?;
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut u8` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: required because it appears within the type `PhantomData<*mut u8>`
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/marker.rs:811:11
[INFO] [stdout] note: required because it appears within the type `wasm_bindgen::JsValue`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/wasm-bindgen-0.2.108/src/lib.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub struct JsValue {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] note: required because it appears within the type `SignalStorage`
[INFO] [stdout]    --> src/storage_adapter.rs:58:14
[INFO] [stdout]     |
[INFO] [stdout]  58 |     pub type SignalStorage;
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] note: required because it appears within the type `JsStorageAdapter`
[INFO] [stdout]    --> src/storage_adapter.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct JsStorageAdapter {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JsStorageAdapter` to implement `protocol::storage::traits::ThreadSafe`
[INFO] [stdout] note: required by a bound in `get_local_registration_id`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/git/checkouts/whatsapp-rust-acce85bd6aff6984/e2fb8bf/wacore/libsignal/src/protocol/storage/traits.rs:57:29
[INFO] [stdout]     |
[INFO] [stdout]  57 | pub trait IdentityKeyStore: ThreadSafe {
[INFO] [stdout]     |                             ^^^^^^^^^^ required by this bound in `IdentityKeyStore::get_local_registration_id`
[INFO] [stdout] ...
[INFO] [stdout]  69 |     async fn get_local_registration_id(&self) -> Result<u32>;
[INFO] [stdout]     |              ------------------------- required by a bound in this associated function
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:948:5: 948:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:636:41
[INFO] [stdout]     |
[INFO] [stdout] 636 | async fn resolve_maybe_promise_optional(value: JsValue) -> SignalResult<Option<JsValue>> {
[INFO] [stdout]     |                                         ^^^^^ has type `wasm_bindgen::JsValue` which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:948:5: 948:10}`, the trait `Send` is not implemented for `Rc<RefCell<wasm_bindgen_futures::Inner>>`
[INFO] [stdout] note: future is not `Send` as it awaits another future which is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:630:16
[INFO] [stdout]     |
[INFO] [stdout] 630 |         return JsFuture::from(Promise::unchecked_from_js(value)).await;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `JsFuture`, which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<wasm_bindgen_futures::Inner>>`
[INFO] [stdout] note: future is not `Send` as it awaits another future which is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:630:16
[INFO] [stdout]     |
[INFO] [stdout] 630 |         return JsFuture::from(Promise::unchecked_from_js(value)).await;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `JsFuture`, which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:983:5: 983:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:636:41
[INFO] [stdout]     |
[INFO] [stdout] 636 | async fn resolve_maybe_promise_optional(value: JsValue) -> SignalResult<Option<JsValue>> {
[INFO] [stdout]     |                                         ^^^^^ has type `wasm_bindgen::JsValue` which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:983:5: 983:10}`, the trait `Send` is not implemented for `Rc<RefCell<wasm_bindgen_futures::Inner>>`
[INFO] [stdout] note: future is not `Send` as it awaits another future which is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:630:16
[INFO] [stdout]     |
[INFO] [stdout] 630 |         return JsFuture::from(Promise::unchecked_from_js(value)).await;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `JsFuture`, which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:948:27
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |                           ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:948:5: 948:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:636:41
[INFO] [stdout]     |
[INFO] [stdout] 636 | async fn resolve_maybe_promise_optional(value: JsValue) -> SignalResult<Option<JsValue>> {
[INFO] [stdout]     |                                         ^^^^^ has type `wasm_bindgen::JsValue` which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:948:5
[INFO] [stdout]     |
[INFO] [stdout] 948 |     async fn get_pre_key(&self, prekey_id: PreKeyId) -> SignalResult<PreKeyRecord> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:948:5: 948:10}`, the trait `Send` is not implemented for `Rc<RefCell<wasm_bindgen_futures::Inner>>`
[INFO] [stdout] note: future is not `Send` as it awaits another future which is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:630:16
[INFO] [stdout]     |
[INFO] [stdout] 630 |         return JsFuture::from(Promise::unchecked_from_js(value)).await;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `JsFuture`, which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:948:5: 948:10}>>` to `Pin<Box<dyn Future<Output = Result<PreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-05e8d3d71adc05e0.long-type-17735722614717471505.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:960:5
[INFO] [stdout]     |
[INFO] [stdout] 960 |     async fn save_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:960:5: 960:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:961:14
[INFO] [stdout]     |
[INFO] [stdout] 961 |         &mut self,
[INFO] [stdout]     |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:960:5: 960:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `Rc<RefCell<wasm_bindgen_futures::Inner>>`
[INFO] [stdout] note: future is not `Send` as it awaits another future which is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:630:16
[INFO] [stdout]     |
[INFO] [stdout] 630 |         return JsFuture::from(Promise::unchecked_from_js(value)).await;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `JsFuture`, which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:968:5
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:968:5: 968:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:968:34
[INFO] [stdout]     |
[INFO] [stdout] 968 |     async fn remove_pre_key(&mut self, prekey_id: PreKeyId) -> SignalResult<()> {
[INFO] [stdout]     |                                  ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:968:5: 968:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `JsStorageAdapter`, the trait `Sync` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&` references cannot be sent unless their referent is `Sync`
[INFO] [stdout]    --> src/storage_adapter.rs:984:10
[INFO] [stdout]     |
[INFO] [stdout] 984 |         &self,
[INFO] [stdout]     |          ^^^^ has type `&JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Sync`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:983:5: 983:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:636:41
[INFO] [stdout]     |
[INFO] [stdout] 636 | async fn resolve_maybe_promise_optional(value: JsValue) -> SignalResult<Option<JsValue>> {
[INFO] [stdout]     |                                         ^^^^^ has type `wasm_bindgen::JsValue` which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]    --> src/storage_adapter.rs:983:5
[INFO] [stdout]     |
[INFO] [stdout] 983 |     async fn get_signed_pre_key(
[INFO] [stdout]     |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]     |
[INFO] [stdout]     = help: within `{async block@src/storage_adapter.rs:983:5: 983:10}`, the trait `Send` is not implemented for `Rc<RefCell<wasm_bindgen_futures::Inner>>`
[INFO] [stdout] note: future is not `Send` as it awaits another future which is not `Send`
[INFO] [stdout]    --> src/storage_adapter.rs:630:16
[INFO] [stdout]     |
[INFO] [stdout] 630 |         return JsFuture::from(Promise::unchecked_from_js(value)).await;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ await occurs here on type `JsFuture`, which is not `Send`
[INFO] [stdout]     = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:983:5: 983:10}>>` to `Pin<Box<dyn Future<Output = Result<SignedPreKeyRecord, SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<IdentityKeyPair>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<u32>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SessionRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, wacore_libsignal::protocol::SenderKeyRecord>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<HashMap<std::string::String, Vec<u8>>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<bool>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<std::option::Option<(std::string::String, std::string::String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `Rc<RefCell<Option<(String, String, String)>>>`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout]      = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/whatsapp_rust_bridge-804244398612cdad.long-type-1695654299504193852.txt'
[INFO] [stdout]      = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: future cannot be sent between threads safely
[INFO] [stdout]     --> src/storage_adapter.rs:999:5
[INFO] [stdout]      |
[INFO] [stdout]  999 |     async fn save_signed_pre_key(
[INFO] [stdout]      |     ^^^^^ future created by async block is not `Send`
[INFO] [stdout]      |
[INFO] [stdout]      = help: within `{async block@src/storage_adapter.rs:999:5: 999:10}`, the trait `Send` is not implemented for `*mut u8`
[INFO] [stdout] note: captured value is not `Send` because `&mut` references cannot be sent unless their referent is `Send`
[INFO] [stdout]     --> src/storage_adapter.rs:1000:14
[INFO] [stdout]      |
[INFO] [stdout] 1000 |         &mut self,
[INFO] [stdout]      |              ^^^^ has type `&mut JsStorageAdapter` which is not `Send`, because `JsStorageAdapter` is not `Send`
[INFO] [stdout]      = note: required for the cast from `Pin<Box<{async block@src/storage_adapter.rs:999:5: 999:10}>>` to `Pin<Box<dyn Future<Output = Result<(), SignalProtocolError>> + Send>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0053, E0277.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `whatsapp-rust-bridge` (lib) due to 203 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0053, E0277.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0053`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `whatsapp-rust-bridge` (lib test) due to 203 previous errors
[INFO] running `Command { std: "docker" "inspect" "3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca", kill_on_drop: false }`
[INFO] [stdout] 3b64b4b911658b9d77132c2652a6c7b0412bed0625a6f0ca21855dd04572e7ca
